package blingking.jfinal.orm.annotation;


import blingking.jfinal.orm.tx.TxTypeEnum;

import java.lang.annotation.*;


/**
 * @author King
 * @description
 * 事务注解
 * 1.单个数据源事务管理 可不添加dataSources
 * 2.多数据库事务管理
 *   2.1 使用txType=NATIVE管理事务(默认)
 *       2.1.1 如果多个操作在同一个数据库,则添加当前数据源  如：dataSources="ds1"
 *       2.1.2如果多个操作在不同数数据库，则添加多个数据源 如：dataSources={"ds1","ds2"}
 *   2.2 使用xType=XA管理事务
 *   *   2.2.1 不需要添加dataSources
 *       2.2.2 开启XA，如：txType = TxTypeEnum.XA
 * @Date 2020/3/22
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface JFinalORMTx {
    String[] dataSources() default {};
    TxTypeEnum txType() default TxTypeEnum.NATIVE;
}
